$(function () {
    var form = layui.form
    var laypage = layui.laypage
    // 1. 定义查询参数q,方便后面做分页
    var q = {
        pagenum: 1, // 请求的页码
        pagesize: 2, // 每页请求数据条数
        cate_id: '',
        state: ''
    }
    // 定义美化时间的过滤器
    template.defaults.imports.dataFormat = function (date) {
        const dt = new Date(date)

        var y = dt.getFullYear()
        var m = padZero(dt.getMonth() + 1)
        var d = padZero(dt.getDate())

        var hh = padZero(dt.getHours())
        var mm = padZero(dt.getMinutes())
        var ss = padZero(dt.getSeconds())
        // 过滤器函数，一定要将正确处理结果return出去，否则过滤不生效
        // 注意：所有函数被调用后，都会有一个return值，默认是undefined
        return y + '-' + m + '-' + d + ' ' + hh + ':' + mm + ':' + ss
    }

    // 定义补零的函数
    function padZero(n) {
        return n > 9 ? n : '0' + n
    }

    // 获取文章列表数据
    initArtList()
    function initArtList() {
        $.ajax({
            url: '/my/article/list',
            method: 'GET',
            data: q,
            success: function (res) {
                if (res.status !== 0) {
                    return layer.msg(res.message)
                }
                console.log(res);
                // 渲染表格数据
                var htmlTpl = template('artListTpl', res)
                $('tbody').html(htmlTpl)
                renderPage(res.total)
            }
        })
    }
    // 定义分页函数
    function renderPage(total) {
        //执行一个laypage实例
        laypage.render({
            elem: 'page-box' //注意，这里的 page-box 是 ID，不用加 # 号
            , count: total, //数据总数，从服务端得到
            limit: q.pagesize, // 设置每页多少条数据
            curr: q.pagenum, // 设置当前页码位置，防止重新渲染的时候页码回到1
            limits: [2, 3, 4, 5],
            layout: ['count', 'limit', 'prev', 'page', 'next', 'skip'],
            jump: function (obj, first) {
                //obj包含了当前分页的所有参数，比如：
                console.log(obj.curr); //得到当前页，以便向服务端请求对应页的数据。
                console.log(obj.limit); //得到每页显示的条数
                q.pagenum = obj.curr
                q.pagesize = obj.limit
                //首次不执行
                if (!first) {
                    // 请求列表数据
                    initArtList()
                }
            }
        })
    }
    // 获取分类列表渲染筛选项
    initCateList()
    function initCateList() {
        $.ajax({
            url: '/my/article/cates',
            method: 'GET',
            success: function (res) {
                if (res.status !== 0) {
                    return layer.msg(res.message)
                }
                // 渲染筛选框
                var htmlTpl = template('cateListTpl', res)
                $('[name=cate_id]').html(htmlTpl)
                form.render()
            }
        })
    }

    // 筛选功能逻辑
    $('#selectForm').on('submit', function (e) {
        e.preventDefault()
        // 1. 获取用户选择的值，
        var cateId = $('[name=cate_id]').val()
        var state = $('[name=state]').val()
        // 2. 修改查询参数
        q.cate_id = cateId
        q.state = state
        // 3. 调用查询方法
        initArtList()
    })

    // 删除文章
    $('tbody').on('click', '#btnDel', function () {
        var artId = $(this).attr('data-id')
        var len = $('.btnDel').length
        console.log(len);
        layer.confirm('确定要删除吗?', { icon: 3, title: '提示' }, function (index) {
            //do something
            $.ajax({
                url: '/my/article/delete/' + artId,
                method: 'GET',
                success: function (res) {
                    if (res.status !== 0) {
                        return layer.msg(res.message)
                    }
                    layer.msg('删除成功')
                    if (len === 1) {
                       if (q.pagenum > 1) {
                           q.pagenum = q.pagenum - 1
                       }
                    }
                    initArtList()
                }
            })
            layer.close(index);
        })
    })
})
